<p>001</p>
<p>002</p>
<p>003</p>
<script>
  // let arr = ["a", "b", "c"];
  // for (let i in arr) {
  //   console.log(i);
  // }
  // console.log("------------");
  // for (let i of arr) {
  //   console.log(i);
  // }

  // let str = "abcd";
  // for (let i in str) {
  //   console.log(i);
  // }
  // console.log("------------");
  // for (let i of str) {
  //   console.log(i);
  // }

  // function fn() {
  //   for (let i in arguments) {
  //     console.log(i);
  //   }
  //   console.log("------------");
  //   for (let i of arguments) {
  //     console.log(i);
  //   }
  // }
  // fn("a", "b", "c", "d", "e");

  // let pList = document.querySelectorAll("p")
  // for (let i in pList) {
  //   console.log(i);
  // }
  // console.log("------------");
  // for (let i of pList) {
  //   console.log(i);
  // }

  // let obj = {
  //   uname: "wc",
  //   uage: 18
  // }
  // for (let i in obj) {
  //   console.log(i);
  // }
  // console.log("------------");
  // // obj is not iterable obj不是可迭代对象
  // //
  // for (let i of obj) {
  //   console.log(i);
  // }


  // const set = new Set([10, 20, 30])
  // for (let n in set) {
  //   console.log(n)
  // }
  // console.log("------------");
  // for (let n of set) {
  //   console.log(n)
  // }

  // const map = new Map([
  //   ["x", 100],
  //   ["y", 200],
  //   ["z", 300],
  // ])
  // for (let n in map) {
  //   console.log(n)
  // }
  // console.log("------------");
  // for (let n of map) {
  //   console.log(n)
  // }

  // function* foo() {
  //   yield 10
  //   yield 20
  //   yield 30
  // }
  // for (let n in foo()) {
  //   console.log(n)
  // }
</script>


<script>
  function createPromise(val) {
    return new Promise((resolve) => {
      setTimeout(() => {
        resolve(val)
      }, 1000)
    })
  }

  ; (async function () {
    let p1 = createPromise(1)
    let p2 = createPromise(2)
    let p3 = createPromise(3)

    let res1 = await p1;
    console.log("res1:", res1);
    let res2 = await p2;
    console.log("res2:", res2);
    let res3 = await p3;
    console.log("res3:", res3);

    console.log("-----------");

    let list = [p1, p2, p3];
    for await (let res of list) {
      console.log(res);
    }

    console.log("-----------");

    let res4 = await createPromise(4);
    console.log("res4:", res4);
    let res5 = await createPromise(5);
    console.log("res5:", res5);
    let res6 = await createPromise(6);
    console.log("res6:", res6);

    console.log("-----------");

    let arr2 = [10, 20, 30];
    for (let num of arr2) {
      const res = await createPromise(num)
      console.log(res);
    }



  }())

</script>